using System.Collections.Generic;
using NBehave.Narrator.Framework;
using NBehave.Spec.NUnit;

namespace NH.OpenClosedPrinciple
{
	public class FixtureBase : SpecBase
	{
		protected Story story;
		protected IList<Product> products;

		public override void MainSetup() {
			story = new Story("Filterating Products");
			story
				.AsA("Developer")
				.IWant("To filter list of products by search criteria while adhering to OCP")
				.SoThat("I understand OCP");
		}

		protected IList<Product> BuildProductList() {

			return new List<Product>
			       	{
						new Product() {Colour = ProductColour.Blue, Size = ProductSize.Large},
						new Product() {Colour = ProductColour.Red, Size = ProductSize.Large},
						new Product() {Colour = ProductColour.Blue, Size = ProductSize.Medium},
						new Product() {Colour = ProductColour.Red, Size = ProductSize.Small},
						new Product() {Colour = ProductColour.Blue, Size = ProductSize.Large},
						new Product() {Colour = ProductColour.Yellow, Size = ProductSize.Small},
						new Product() {Colour = ProductColour.Blue, Size = ProductSize.Small}
			       	};
		}
	}
}